Wireless network systems often employ encapsulation or other aggregations of frames so as to improve transmission performance. The Institute of Electrical and Electronic Engineers (IEEE) 802.11 standards provide for the aggregation of two or more medium access control (MAC) service data units (MSDUs) into a corresponding aggregated MAC service data unit (A-MSDU). MSDUs or A-MSDUs in turn are encapsulated in a MAC protocol data unit (MPDU). The IEEE 802.11 standards further provide for the aggregation of one or more MPDUs as a series of aggregated MAC protocol data units (A-MPDUs). In turn, a single MPDU or one or more A-MPDUs are encapsulated in a physical layer (PHY) protocol data unit (PPDU) that is wirelessly transmitted via the PHY of the transmitting device.
In order to provide A-MSDU aggregation, MSDUs typically are double-buffered, in that they are buffered across multiple software-managed queues by a software scheduler until there is a sufficient number of buffered MSDUs to create an A-MSDU. The software scheduler then copies the MSDUs into a single buffer (often called an A-MSDU buffer) and the MSDUs in this single buffer are then inserted into a separate hardware-managed first-in first-out (FIFO) queue. Thus, to create an A-MSDU, a software-implemented scheduler typically is required to queue and then de-queue multiple MSDUs from multiple software-managed queues into a single software-managed queue, and then transfer the created A-MSDUs in the single software-managed queue to the hardware-managed queue, as well as generate the headers necessary to separate the MSDUs within the A-MSDU. This process often impacts processor utilization due to the execution of the software scheduler necessary to manage the queuing and de-queuing of MSDUs between these queues, and thus can degrade transmission throughput.